<p>The standard assertions library methods such as <code>org.junit.Assert.assertEquals</code>, and <code>org.junit.Assert.assertSame</code> expect the
first argument to be the expected value and the second argument to be the actual value. Swap them, and your test will still have the same outcome
(succeed/fail when it should) but the error messages will be confusing. </p>
<p>This rule raises an issue when the second argument to an assertions library method is a hard-coded value and the first argument is not.</p>
<h2>Noncompliant Code Example</h2>
<pre>
org.junit.Assert.assertEquals(runner.exitCode(), 0, "Unexpected exit code");  // Noncompliant; Yields error message like: Expected:&lt;-1&gt;. Actual:&lt;0&gt;.
</pre>
<h2>Compliant Solution</h2>
<pre>
org.junit.Assert.assertEquals(0, runner.exitCode(), "Unexpected exit code");
</pre>

